/**************************************************************************
	GameStateManager.h

	The GameStateManager class will be used to handle game states.
	The states will help the engine pinpoint where the player is in the
	game.  For example, this class will give us feedback as to whether
	we are currently rendering a menu or if we just got a game over.
***************************************************************************
***************************************************************************/
#pragma once

#include <stddef.h>

class GameStateManager
{
public:
	enum eGameState
	{
		GAMEINTRO,
		GAMEMENU,
		GAME_FADEIN,
		GAME_FADEOUT,
		GAMEOVER,
		GETREADY,
		MAINGAME,
		MAINMENU,
		MAPEDITOR,
		RESETDISPLAY,
	};

private:
	static GameStateManager *gsmSingleton;
	eGameState gameState;

public:
	GameStateManager();
	static GameStateManager * getInstance( )
	{
		if(!gsmSingleton)
		{
			gsmSingleton = new GameStateManager( );
		}

		return gsmSingleton;
	}
	eGameState getGameState( );
	void setGameState( eGameState gamestate );
};